함수형 팩토리는 호출했을 때, 객체를 생성하는 함수를 말한다.(팩터리 메서드는 클래스 내부 멤버임)
class DrinkWithVolumeFactory{
map<string, function<unique_ptr<HotDrink>()>> factories;
public:
DrinkWithVolumeFactory(){
factories["tea"]=[]{
auto tea=make_unqiue<Tea>();
tea->prepare(200);
return tea;
};
}
};
inline unique_ptr<HotDrink> DrinkWithVolumeFactory::make_drink(const string& name){
return factories[name]();
}